using System;
using System.Collections.Generic;
using Sirenix.OdinInspector;
using UnityEngine;
namespace DefaultNamespace.Odin
{
    public class MyComponent : MonoBehaviour
    {
        [Title("Character Settings", "Basic information about the character")]
        [SerializeField] private string characterName;
        
        [Range(0, 100)]
        [SerializeField] private int health;
        
        [ShowInInspector] // Show non-serialized fields
        public int MaxHealth => 100;
        
        [PropertySpace(10)] // Add space
        [ColorPalette("Underwater")]
        public Color characterColor;
        
        [InfoBox("This is a warning message", InfoMessageType.Warning)]
        [SerializeField] private float movementSpeed;
        [Title("ComplexData Settings")]
        [SerializeField] private ComplexData complexData;
    }
    
    [Serializable]
    public class ComplexData
    {
        [SerializeField] public Dictionary<string, GameObject> objectMap;
        [SerializeField] public HashSet<int> uniqueIDs;
        [SerializeField] public LinkedList<float> timingSequence;
        [SerializeField] public int aa;
    }
}